<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PinCRT: IPC</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">PinCRT
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">IPC</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga7d64e90581bdd8948ed13f30f6b6a522"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga7d64e90581bdd8948ed13f30f6b6a522">OS_APIS_IPC_SOCKET_DOMAIN</a> { <br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#gga7d64e90581bdd8948ed13f30f6b6a522a9069fcf91ce65085881442130710b1da">OS_APIS_IPC_SOCKET_DOMAIN_INET</a> = 0, 
<br />
&#160;&#160;<b>OS_APIS_IPC_SOCKET_DOMAIN_UNIX</b> = 1
<br />
 }</td></tr>
<tr class="separator:ga7d64e90581bdd8948ed13f30f6b6a522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0de2b9d6f60ccba50e4c7db19697a45a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga0de2b9d6f60ccba50e4c7db19697a45a">OS_APIS_IPC_SOCKET_TYPE</a> { <a class="el" href="group__OS__APIS__IPC.html#gga0de2b9d6f60ccba50e4c7db19697a45aaa25c5e47916c96deb50046b73aa369f2">OS_APIS_IPC_SOCKET_TYPE_STREAM</a> = 0
 }</td></tr>
<tr class="separator:ga0de2b9d6f60ccba50e4c7db19697a45a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab521f2803eec423dc1cd570b88d90d2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#gaab521f2803eec423dc1cd570b88d90d2">OS_APIS_IPC_SOCKET_PROTOCOL</a> { <a class="el" href="group__OS__APIS__IPC.html#ggaab521f2803eec423dc1cd570b88d90d2a5e282954e3ecc849584d092ec880e5be">OS_APIS_IPC_SOCKET_PROTOCOL_DEFAULT</a> = 0
 }</td></tr>
<tr class="separator:gaab521f2803eec423dc1cd570b88d90d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26c0ad3e94afe7b80683866c7cda8896"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga26c0ad3e94afe7b80683866c7cda8896">OS_APIS_IPC_SHUTDOWN</a> { <br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#gga26c0ad3e94afe7b80683866c7cda8896a10843882381f2ffa6877e6277c1cb45e">OS_APIS_IPC_SHUTDOWN_INVALID</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#gga26c0ad3e94afe7b80683866c7cda8896a372ab0a0c07fcdf8f931ef3dd75f95ac">OS_APIS_IPC_SHUTDOWN_READ</a> = (1 &lt;&lt; 0), 
<br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#gga26c0ad3e94afe7b80683866c7cda8896ab03c1ee06dc0d5b137dd36dd8214d596">OS_APIS_IPC_SHUTDOWN_WRITE</a> = (1 &lt;&lt; 1)
<br />
 }</td></tr>
<tr class="separator:ga26c0ad3e94afe7b80683866c7cda8896"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1d4d01ba1dcfa1faaf28c50874c1eb6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#gab1d4d01ba1dcfa1faaf28c50874c1eb6">OS_APIS_IPC_SENDTO_FLAGS</a> { <br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#ggab1d4d01ba1dcfa1faaf28c50874c1eb6adf730151bd0655a2d460eefbeea405f3">OS_APIS_IPC_SENDTO_FLAGS_NONE</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#ggab1d4d01ba1dcfa1faaf28c50874c1eb6a23b1132fa5273b867c98414aca3b9a1b">OS_APIS_IPC_SENDTO_FLAGS_OOB</a> = (1 &lt;&lt; 0), 
<br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#ggab1d4d01ba1dcfa1faaf28c50874c1eb6a7153eed4772f54ac62cf99fb3ab9f778">OS_APIS_IPC_SENDTO_FLAGS_DONT_ROUTE</a> = (1 &lt;&lt; 1), 
<br />
&#160;&#160;<a class="el" href="group__OS__APIS__IPC.html#ggab1d4d01ba1dcfa1faaf28c50874c1eb6a1c70fe575381459814bc5f80f3862846">OS_APIS_IPC_SENDTO_FLAGS_NO_SIGNAL</a> = (1 &lt;&lt; 2)
<br />
 }</td></tr>
<tr class="separator:gab1d4d01ba1dcfa1faaf28c50874c1eb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga14a140fa66c2f5d69e59dc0900d8b56b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga14a140fa66c2f5d69e59dc0900d8b56b">OS_Pipe</a> (<a class="el" href="group__OS__APIS__FILE.html#ga3b5104eac807de465009822c2b5d83cc">OS_PIPE_CREATE_FLAGS</a> flags, <a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *readFd, <a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *writeFd)</td></tr>
<tr class="separator:ga14a140fa66c2f5d69e59dc0900d8b56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03d4d6d81193b0aee18e724b08bc9454"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga03d4d6d81193b0aee18e724b08bc9454">OS_Socket</a> (<a class="el" href="group__OS__APIS__IPC.html#ga7d64e90581bdd8948ed13f30f6b6a522">OS_APIS_IPC_SOCKET_DOMAIN</a> domain, <a class="el" href="group__OS__APIS__IPC.html#ga0de2b9d6f60ccba50e4c7db19697a45a">OS_APIS_IPC_SOCKET_TYPE</a> type, <a class="el" href="group__OS__APIS__IPC.html#gaab521f2803eec423dc1cd570b88d90d2">OS_APIS_IPC_SOCKET_PROTOCOL</a> protocol, <a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *fd)</td></tr>
<tr class="separator:ga03d4d6d81193b0aee18e724b08bc9454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1daa91d902fa7be8dcfff19944dd34d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga1daa91d902fa7be8dcfff19944dd34d9">OS_Accept</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> sockfd, struct sockaddr *addr, USIZE *addrlen, <a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *newfd)</td></tr>
<tr class="separator:ga1daa91d902fa7be8dcfff19944dd34d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19d9a8ef0c34924ed9ac47f450a35dc0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga19d9a8ef0c34924ed9ac47f450a35dc0">OS_Listen</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> sockfd, INT backlog)</td></tr>
<tr class="separator:ga19d9a8ef0c34924ed9ac47f450a35dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga07c0e1d8c12c0cfe4e3b861c20c0fac3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga07c0e1d8c12c0cfe4e3b861c20c0fac3">OS_Connect</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> sockfd, const struct sockaddr *addr, USIZE addrlen)</td></tr>
<tr class="separator:ga07c0e1d8c12c0cfe4e3b861c20c0fac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad32d0b42ab5fb3a7df1b1a3d083f2431"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#gad32d0b42ab5fb3a7df1b1a3d083f2431">OS_Bind</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> sockfd, const struct sockaddr *addr, USIZE addrlen)</td></tr>
<tr class="separator:gad32d0b42ab5fb3a7df1b1a3d083f2431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ba7797f7b6361300804b2855a2fa5f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga6ba7797f7b6361300804b2855a2fa5f9">OS_GetSockName</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> sockfd, const struct sockaddr *addr, USIZE *addrlen)</td></tr>
<tr class="separator:ga6ba7797f7b6361300804b2855a2fa5f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ce1fb8088aa608c14552a4a9bea39d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga6ce1fb8088aa608c14552a4a9bea39d1">OS_Shutdown</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> sockfd, <a class="el" href="group__OS__APIS__IPC.html#ga26c0ad3e94afe7b80683866c7cda8896">OS_APIS_IPC_SHUTDOWN</a> how)</td></tr>
<tr class="separator:ga6ce1fb8088aa608c14552a4a9bea39d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0bea137b6fc1dd5849294e2893c75460"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__IPC.html#ga0bea137b6fc1dd5849294e2893c75460">OS_SendTo</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> sockfd, const void *buffer, <a class="el" href="group__OS__APIS__IPC.html#gab1d4d01ba1dcfa1faaf28c50874c1eb6">OS_APIS_IPC_SENDTO_FLAGS</a> flags, const struct sockaddr *dest_addr, USIZE dest_len, USIZE *buf_length)</td></tr>
<tr class="separator:ga0bea137b6fc1dd5849294e2893c75460"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>ipc-pipe.h</p>
<p>Contains IPC related os apis </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gab1d4d01ba1dcfa1faaf28c50874c1eb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab1d4d01ba1dcfa1faaf28c50874c1eb6">&#9670;&nbsp;</a></span>OS_APIS_IPC_SENDTO_FLAGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__IPC.html#gab1d4d01ba1dcfa1faaf28c50874c1eb6">OS_APIS_IPC_SENDTO_FLAGS</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Value for argument <b>how</b> to <a class="el" href="group__OS__APIS__IPC.html#ga6ce1fb8088aa608c14552a4a9bea39d1">OS_Shutdown()</a> </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggab1d4d01ba1dcfa1faaf28c50874c1eb6adf730151bd0655a2d460eefbeea405f3"></a>OS_APIS_IPC_SENDTO_FLAGS_NONE&#160;</td><td class="fielddoc"><p>No flags specified. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab1d4d01ba1dcfa1faaf28c50874c1eb6a23b1132fa5273b867c98414aca3b9a1b"></a>OS_APIS_IPC_SENDTO_FLAGS_OOB&#160;</td><td class="fielddoc"><p>Send out of band message. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab1d4d01ba1dcfa1faaf28c50874c1eb6a7153eed4772f54ac62cf99fb3ab9f778"></a>OS_APIS_IPC_SENDTO_FLAGS_DONT_ROUTE&#160;</td><td class="fielddoc"><p>bypass routing, use direct interface </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab1d4d01ba1dcfa1faaf28c50874c1eb6a1c70fe575381459814bc5f80f3862846"></a>OS_APIS_IPC_SENDTO_FLAGS_NO_SIGNAL&#160;</td><td class="fielddoc"><p>Don't send SIGPIPE when the other side of the connection is closed. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga26c0ad3e94afe7b80683866c7cda8896"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26c0ad3e94afe7b80683866c7cda8896">&#9670;&nbsp;</a></span>OS_APIS_IPC_SHUTDOWN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__IPC.html#ga26c0ad3e94afe7b80683866c7cda8896">OS_APIS_IPC_SHUTDOWN</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Value for argument <b>how</b> to <a class="el" href="group__OS__APIS__IPC.html#ga6ce1fb8088aa608c14552a4a9bea39d1">OS_Shutdown()</a> </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga26c0ad3e94afe7b80683866c7cda8896a10843882381f2ffa6877e6277c1cb45e"></a>OS_APIS_IPC_SHUTDOWN_INVALID&#160;</td><td class="fielddoc"><p>Invalid value for socket shutdown. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga26c0ad3e94afe7b80683866c7cda8896a372ab0a0c07fcdf8f931ef3dd75f95ac"></a>OS_APIS_IPC_SHUTDOWN_READ&#160;</td><td class="fielddoc"><p>Shutdown socket's read side. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga26c0ad3e94afe7b80683866c7cda8896ab03c1ee06dc0d5b137dd36dd8214d596"></a>OS_APIS_IPC_SHUTDOWN_WRITE&#160;</td><td class="fielddoc"><p>Shutdown socket's write side. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga7d64e90581bdd8948ed13f30f6b6a522"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7d64e90581bdd8948ed13f30f6b6a522">&#9670;&nbsp;</a></span>OS_APIS_IPC_SOCKET_DOMAIN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__IPC.html#ga7d64e90581bdd8948ed13f30f6b6a522">OS_APIS_IPC_SOCKET_DOMAIN</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Socket domain </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga7d64e90581bdd8948ed13f30f6b6a522a9069fcf91ce65085881442130710b1da"></a>OS_APIS_IPC_SOCKET_DOMAIN_INET&#160;</td><td class="fielddoc"><p>Internet socket. </p>
</td></tr>
</table>

</div>
</div>
<a id="gaab521f2803eec423dc1cd570b88d90d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaab521f2803eec423dc1cd570b88d90d2">&#9670;&nbsp;</a></span>OS_APIS_IPC_SOCKET_PROTOCOL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__IPC.html#gaab521f2803eec423dc1cd570b88d90d2">OS_APIS_IPC_SOCKET_PROTOCOL</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Socket domain </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaab521f2803eec423dc1cd570b88d90d2a5e282954e3ecc849584d092ec880e5be"></a>OS_APIS_IPC_SOCKET_PROTOCOL_DEFAULT&#160;</td><td class="fielddoc"><p>Full-duplex byte stream. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga0de2b9d6f60ccba50e4c7db19697a45a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0de2b9d6f60ccba50e4c7db19697a45a">&#9670;&nbsp;</a></span>OS_APIS_IPC_SOCKET_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__IPC.html#ga0de2b9d6f60ccba50e4c7db19697a45a">OS_APIS_IPC_SOCKET_TYPE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Socket domain </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0de2b9d6f60ccba50e4c7db19697a45aaa25c5e47916c96deb50046b73aa369f2"></a>OS_APIS_IPC_SOCKET_TYPE_STREAM&#160;</td><td class="fielddoc"><p>Full-duplex byte stream. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga1daa91d902fa7be8dcfff19944dd34d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1daa91d902fa7be8dcfff19944dd34d9">&#9670;&nbsp;</a></span>OS_Accept()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct sockaddr *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>addrlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>newfd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Accepts a new connection on a listening socket. See man page of accept(2) for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>The listening socket </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">addr</td><td>The address of the remote connection that was accepted. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">addrlen</td><td>The size in bytes of <b>addr</b>, returns the number of bytes writen to addr. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">newfd</td><td>The file descriptor of the socket created for this session.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gad32d0b42ab5fb3a7df1b1a3d083f2431"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad32d0b42ab5fb3a7df1b1a3d083f2431">&#9670;&nbsp;</a></span>OS_Bind()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Bind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE&#160;</td>
          <td class="paramname"><em>addrlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Bind this socket to a local address. See man page of bind(2) for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>The socket to bind. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>The address to bind the socket to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">addrlen</td><td>The size in bytes of <b>addr</b>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga07c0e1d8c12c0cfe4e3b861c20c0fac3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga07c0e1d8c12c0cfe4e3b861c20c0fac3">&#9670;&nbsp;</a></span>OS_Connect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Connect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE&#160;</td>
          <td class="paramname"><em>addrlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Connect this socket to a remote socket. See man page of connet(2) for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>The socket to initiate the connect from. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>The address of the remote socket to connect to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">addrlen</td><td>The size in bytes of <b>addr</b>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga6ba7797f7b6361300804b2855a2fa5f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ba7797f7b6361300804b2855a2fa5f9">&#9670;&nbsp;</a></span>OS_GetSockName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_GetSockName </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>addrlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the local address where the socket was bound. See man page of getsockname(2) for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>The socket to initiate the connect from. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">addr</td><td>The address where the socket was bound. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">addrlen</td><td>The size in bytes of <b>addr</b>, returns the number of bytes writen to addr.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga19d9a8ef0c34924ed9ac47f450a35dc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga19d9a8ef0c34924ed9ac47f450a35dc0">&#9670;&nbsp;</a></span>OS_Listen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Listen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>backlog</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Listen for incomming connection in a socket. See man page of listen(2) for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>The socket to listen on. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">backlog</td><td>Number of connections to backlog (the meanning of it depends on the OS and kernel version).</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga14a140fa66c2f5d69e59dc0900d8b56b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga14a140fa66c2f5d69e59dc0900d8b56b">&#9670;&nbsp;</a></span>OS_Pipe()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Pipe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#ga3b5104eac807de465009822c2b5d83cc">OS_PIPE_CREATE_FLAGS</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>readFd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>writeFd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Creates an anonymous pipe, and returns handles to the read and write ends of the pipe.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>Pipes creation flags </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">readFd</td><td>File descriptor for the read side </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">writeFd</td><td>File descriptor for the write side</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_INVALID_ARGS</td><td>One of the input arguments is invalid. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: All <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga0bea137b6fc1dd5849294e2893c75460"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0bea137b6fc1dd5849294e2893c75460">&#9670;&nbsp;</a></span>OS_SendTo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SendTo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__IPC.html#gab1d4d01ba1dcfa1faaf28c50874c1eb6">OS_APIS_IPC_SENDTO_FLAGS</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr *&#160;</td>
          <td class="paramname"><em>dest_addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE&#160;</td>
          <td class="paramname"><em>dest_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>buf_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Transmit a message to another socket.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>The socket to send data to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Data buffer </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>Message flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dest_addr</td><td>Socket destination address </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dest_len</td><td>Size of dest_addr </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">buf_length</td><td>Length of the bytes in <b>buffer</b> / bytes sent</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_WRITE_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga6ce1fb8088aa608c14552a4a9bea39d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ce1fb8088aa608c14552a4a9bea39d1">&#9670;&nbsp;</a></span>OS_Shutdown()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Shutdown </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__IPC.html#ga26c0ad3e94afe7b80683866c7cda8896">OS_APIS_IPC_SHUTDOWN</a>&#160;</td>
          <td class="paramname"><em>how</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Causes all or part of a full-duplex connection on the socket associated with sockfd to be shut down.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>The file descriptor of the socket to shut down. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">how</td><td>Bitwise OR of the value in OS_APIS_IPC_SHUTDOWN. If OS_APIS_IPC_SHUTDOWN_READ is specified, further receptions will be disallowed. If OS_APIS_IPC_SHUTDOWN_WRITE is specified,further transmissions will be disallowed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_INVALID_ARGS</td><td>If the value of <b>how</b> is invalid. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_CLOSE_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga03d4d6d81193b0aee18e724b08bc9454"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga03d4d6d81193b0aee18e724b08bc9454">&#9670;&nbsp;</a></span>OS_Socket()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Socket </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__IPC.html#ga7d64e90581bdd8948ed13f30f6b6a522">OS_APIS_IPC_SOCKET_DOMAIN</a>&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__IPC.html#ga0de2b9d6f60ccba50e4c7db19697a45a">OS_APIS_IPC_SOCKET_TYPE</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__IPC.html#gaab521f2803eec423dc1cd570b88d90d2">OS_APIS_IPC_SOCKET_PROTOCOL</a>&#160;</td>
          <td class="paramname"><em>protocol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>fd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Creates a socket. See man page of socket(2) for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">domain</td><td>Socket domain </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Socket type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">protocol</td><td>Socket Protocol </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">fd</td><td>Created file descriptor for the socket</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_INVALID_ARGS</td><td>One of the input arguments is invalid. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
